﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //一共有3位客人
            Queue queue = new Queue(30);
            Stack stack = new Stack(queue);
            Stack stack1 = new Stack(queue);
            Stack stack2 = new Stack(queue);
            queue.Enqueue("asdf");
            stack.Push("一号客人");
            stack.Push("二号客人");
            stack.Push("三号客人");
            stack1.Push("一号客人");
            stack1.Push("二号客人");
            stack1.Push("三号客人");
            stack2.Push("一号客人");
            stack2.Push("二号客人");
            stack2.Push("三号客人");

            //遍历方法一
            while (stack.Count != 0)
            {
                Console.WriteLine(stack.Pop(  ));
            }
            //遍历方法二
           
            object[] arrays = stack1.ToArray();
            foreach (var item in arrays)
            {
                Console.WriteLine(item);
            }
            //遍历方法三
            var gentor = stack2.GetEnumerator();
            while (gentor.MoveNext())
            {
                Console.WriteLine(gentor.Current);
            }
            //总结，stack是如同一个一个口的盒子，先放进去的会比较靠里面，所有拿出来的时候会在后面
            //queue是等于一个前后都是打开的盒子，一边是入口，一边是出口
        }
    }
}
